Aller au contenu

Gestion de version/Théorie

Un livre de Wikilivres.

Cette page donne l'ensemble des connaissances valables quel que soit le système de gestion de version.

Vue d'ensemble

[modifier | modifier le wikicode]

Ce logiciel peut fonctionner en local, ou en mode client serveur. Dans les deux cas, un repository contient une hiérarchie de fichiers versionnés.

Commandes principales

[modifier | modifier le wikicode]
checkout
Obtenir une copie locale des fichiers
commit
Envoyer ses modifications
update
Obtenir les modifications des autres
import
Créer un nouveau module

Le checkout est l'opération qui consiste à extraire les fichiers à partir du dépôt. Par défaut, la dernière version du fichier est extraite. Si plusieurs branches de développement sont en cours ou que vous voulez une version plus ancienne, vous devrez le spécifier.

Vous devez spécifier en argument le ou les fichiers ou répertoire que vous voulez extraire. Par exemple :

checkout htdocs/actions/ldd/index.wml

Notez que l'utilisation de checkout est récursive. Ainsi, effectuer un checkout sur un répertoire htdocs va télécharger tout les fichiers et sous dossiers de ce répertoire. Si tout se passe bien, la sortie ressemble à :

U htdocs/actions/ldd/index.wml

Un répertoire htdocs/actions/ldd est créé en local contenant le fichier index.wml ainsi qu'un répertoire spécifique au système qui contient des fichiers administratifs et qu'il convient d'ignorer (mais pas d'effacer). Vous pouvez maintenant travailler sur le fichier index.wml.

Le commit est l'opération inverse. Le but du jeu est de mettre à jour sur le dépôt des fichiers que vous avez modifiés. Par exemple :

commit htdocs/actions/ldd/index.wml

Des informations sur la nature des modifications effectuées vous sont demandées (afin d'archiver leur trace dans un format facilement compréhensible par des humains). Notez que si vous mettez à jour plusieurs fichiers en même temps, on peut vous demander plusieurs descriptions pour vos modifications (vous pouvez mettre les mêmes).

Si votre description tient en quelques mots, vous pouvez vous passer de l'éditeur de texte en mettant votre texte sur la ligne de commande, en utilisant l'option -m

commit -m "Ajout du mois de mai" htdocs/actions/ldd/index.wml

La commande update permet de récupérer sur sa copie locale les modifications effectuées par d'autres personnes. Par exemple, pour recevoir toutes les modifications :

update

Un conflit peut survenir si un fichier modifié localement a aussi été modifié par un autre utilisateur, qui en a fait un commit. Dans ce cas, sont réunies les versions dans un fichier qu'il faut alors fusionner (résoudre les conflits).

Lors de l'update, le serveur notifie l'état de chaque fichier en le précédent d'une lettre :

  • U Fichier importé depuis le serveur (fichier complet)
  • P Fichier mis à jour depuis le serveur (patché)
  • A Fichier ajouté
  • R Fichier supprimé
  • C Conflit sur le fichier
  • M Fichier modifié localement
  • ? Fichier local dont le serveur n'a aucune information

Le système des branches permet de structurer les ramifications des versions par provenance.